import config from '@/api/config'; // 导入请求的基础 URL
import  store from '@/store'

// 封装请求方法
function request(url, method, data) {
	
  return new Promise((resolve, reject) => {
    uni.request({
      url: config.BASE_URL + url,
      method: method,
      data: data,
      header: {
        'Content-Type': 'application/json', // 设置请求头
		'Authorization': store.state.vuex_token
      },
      success: (res) => {
        if (res.statusCode == 200 || res.statusCode == 201 || res.statusCode == 204) {
          resolve(res.data);
        } else if(res.statusCode == 401 || res.statusCode == 403){
			uni.navigateTo({
				url: '/login/login'
			})
		}else {
          reject(res);
        }
      },
      fail: (err) => {
        reject(err);
      },
    });
  });
}

// 配置请求拦截器
uni.addInterceptor('request', {
  // 在发送请求之前做一些处理
  config(requestConfig) {
    // 添加请求头、身份验证等
    requestConfig.header.Authorization = store.state.vuex_token;
    return requestConfig;
  },
  // 请求发生错误时的处理
  fail(error) {
    console.error('请求失败:', error);
  },
});

// 获取vuex中的值
// this.$tn.vuex('vuex_custom_bar_height', customBarHeight)

export default request;